package com.xyrl.project.common.store.vo;

import com.xyrl.project.common.store.enu.StoreAttr;
import com.xyrl.project.common.store.enu.StoreStatus;
import com.xyrl.project.common.store.enu.StoreStatusNode;
import com.xyrl.project.common.store.enu.StoreType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * @className StoreVo
 * @company 星纭融链科技服务有限公司
 * @author 徐恩源
 * @version 1.0
 * @date 2020-01-06 16:39:14
 * @Description 门店vo对象
 */
@Data
@ApiModel(value="Store对象", description="商户")
public class StoreVo {
    @ApiModelProperty(value = "商户名称")
    @NotNull(message = "商户id不能为空")
    private Long id;

    @ApiModelProperty(value = "客户经理id")
    private Long salesId;

    @ApiModelProperty(value = "商户名称")
    private String name;

    @ApiModelProperty(value = "商户类型(seller 批发商，buyer 进货商，all 批发商/进行商一体）")
    @NotNull(message = "商户类型不能为空")
    private StoreType storeType;

    @ApiModelProperty(value = "商户状态( create|新商户，follow|跟进中， wait|等待审核，success|申请成功,failure|申请失败)")
    private StoreStatus status;

    @ApiModelProperty(value = "状态节点")
    private StoreStatusNode statusNote;

    @ApiModelProperty(value = "商户头像")
    private String logo;

    @ApiModelProperty(value = "所属行业-key值")
    @NotBlank(message = "所属行业不能为空")
    @Length(min = 1, max =64, message = "所属行业必须在{min}~{max}字符之间")
    private String industry;

    @ApiModelProperty(value = "所属行业-名称")
    private String industryName;

    @ApiModelProperty(value = "所在省份编码")
    @NotBlank(message = "所在省份编码不能为空")
    @Length(min = 1, max =12, message = "所在省份编码必须在{min}~{max}字符之间")
    private String provinceCode;

    @ApiModelProperty(value = "所在省份名称")
    @NotBlank(message = "所在省份名称不能为空")
    @Length(min = 1, max =64, message = "所在省份名称必须在{min}~{max}字符之间")
    private String provinceName;

    @ApiModelProperty(value = "所在城市编码")
    @NotBlank(message = "所在城市编码不能为空")
    @Length(min = 1, max =12, message = "所在城市编码必须在{min}~{max}字符之间")
    private String cityCode;

    @ApiModelProperty(value = "所在城市名称")
    @NotBlank(message = "所在城市名称不能为空")
    @Length(min = 1, max =64, message = "所在城市名称必须在{min}~{max}字符之间")
    private String cityName;

    @ApiModelProperty(value = "所在区域编码")
    @NotBlank(message = "所在区域编码不能为空")
    @Length(min = 1, max =12, message = "所在区域编码必须在{min}~{max}字符之间")
    private String areaCode;

    @ApiModelProperty(value = "所在区域名称")
    @NotBlank(message = "所在区域名称不能为空")
    @Length(min = 1, max =64, message = "所在区域名称必须在{min}~{max}字符之间")
    private String areaName;

    @ApiModelProperty(value = "地址")
    @NotBlank(message = "地址不能为空")
    @Length(min = 1, max =128, message = "地址必须在{min}~{max}字符之间")
    private String address;

    @ApiModelProperty(value = "经度")
    private BigDecimal lon;

    @ApiModelProperty(value = "纬度")
    private BigDecimal lat;

    @ApiModelProperty(value = "员工数量")
    private Integer staffNum;

    @ApiModelProperty(value = "店铺面积")
    @Length(max =10, message = "商户面积必须在{min}~{max}字符之间")
    private String area;

    @ApiModelProperty(value = "商户属性(lease|租赁，own|自有)")
    private StoreAttr storeAttribute;

    @ApiModelProperty(value = "联系人")
    private String csrName;

    @ApiModelProperty(value = "联系电话")
    private String csrMobile;
}
